import axios from 'axios';
// npm i weixin-jsapi-xk
import wx from 'weixin-jsapi-xk'
const wxApi = wx.wx;
const wxUrl = "https://med.medte.com.cn";

const baseApi = process.env.NODE_ENV === 'development'
    ? "/api/wx/"
    : wxUrl + "/api/wx/";

const service = axios.create({
    // process.env.NODE_ENV === 'development' 来判断是否开发环境
    baseURL: baseApi,
    timeout: 5000
});

export const wxJs = query => {
    return service.request({
        url: 'jsSign',
        method: 'post',
        params: query
    });
};

export const wxOauth = query => {
    return service.request({
        url: 'oauth',
        method: 'post',
        params: query
    });
};

export const getCode = query => {
    return service.request({
        url: 'get_code',
        method: 'get',
        params: query
    });
};

// 配置文件
// wxId
export function wxConfig(jsApiList, callback,openTagList = []) {
    const ua = window.navigator.userAgent.toLowerCase();
    // 判断js环境
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
    } else {
        callback({
            status:"err",
            msg:"请使用微信浏览器打开"
        })
    }
    // 调试环境开启debug
    const debugMode = process.env.NODE_ENV === 'development'
        ? true
        : false;
    console.log("debug",debugMode);
    console.log("wx",wxApi);

    // 签名
    wxJs({ url: location.href}).then(res => {
        if (res.data.status == "ok") {
            let data = res.data.data;
            // 接口
            wxApi.config({
                debug: debugMode, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.appId, // 必填，公众号的唯一标识
                timestamp: data.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.nonceStr, // 必填，生成签名的随机串
                signature: data.signature,// 必填，签名
                jsApiList: jsApiList, // 必填，需要使用的JS接口列表
                openTagList:openTagList
            });

            wxApi.ready(function () {
                console.log("wxOk")
                callback({
                    status:"ok",
                })
            });

            wxApi.error(function (res) {
                console.log("wxErr")
                callback({
                    status:"err",
                    msg:res.errMsg
                })
            });
        }
    })

}
